package co.edu.usbcali.unidad.exceptions;

public class ZMessManager extends Exception {
	private static final long serialVersionUID = 1L;
	public final static String ALL = "Todo ";
	public final static String ENTCHILD = "Tablas relacionada ";
	public final static String FOREIGNDATA = "Datos de llaves foraneas: ";
	public static String ENTITY_SUCCESFULLYSAVED = "La entidad se guardo con exito ";
	public static String ENTITY_SUCCESFULLYDELETED = "La entidad se elimino con exito ";
	public static String ENTITY_SUCCESFULLYMODIFIED = "Se modifico con exito";
	public static String ENTITY_WITHSAMEKEY = "Otra entidad con la misma llave se encontro ";
	public static String ENTITY_NOENTITYTOUPDATE = "No se encontro la entidad ";

	public ZMessManager() {
	}

	public ZMessManager(String exception) {
		super(exception);
	}

	public class NotValidFieldException extends ZMessManager {
		private static final long serialVersionUID = 1L;

		public NotValidFieldException(String info) {
			super("El valor para el campo: \"" + info + "\" no es valido");
		}
	}

	public class EmptyFieldException extends ZMessManager {
		private static final long serialVersionUID = 1L;

		public EmptyFieldException(String info) {
			super("El valor para el campo: \"" + info
					+ "\" no puede ser nulo o vacío");
		}
	}

	public class NotValidFormatException extends ZMessManager {
		private static final long serialVersionUID = 1L;

		public NotValidFormatException(String info) {
			super("El formato o longitud para el campo: \"" + info
					+ "\" no es valido");
		}
	}

	public class DeletingException extends ZMessManager {
		private static final long serialVersionUID = 1L;

		public DeletingException(String info) {
			super("La entidad que esta tratando de eliminar "
					+ "puede tener información relacionada con, "
					+ "por favor, antes de volver a intentarlo, "
					+ "comprobar los datos de la entidad, \"" + info + "\"");
		}
	}

	public class ForeignException extends ZMessManager {
		private static final long serialVersionUID = 1L;

		public ForeignException(String info) {
			super("No había ningún dato relacionado con la entrada \"" + info
					+ "\"");
		}
	}

	public class GettingException extends ZMessManager {
		private static final long serialVersionUID = 1L;

		public GettingException(String info) {
			super("Hubo una excepción conseguir " + info);
		}
	}

	public class FindingException extends ZMessManager {
		private static final long serialVersionUID = 1L;

		public FindingException(String info) {
			super("Hubo una excepción intentando encontrar " + info);
		}
	}
}
